package com.chaos.order.api.dto.pay;

import com.chaos.framework.model.data.DATA;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author: craywen
 * @date: 2021-05-27 15:30
 * @desc:
 */
@Data
public class BaseRefund extends DATA {

    @ApiModelProperty(value = "退款原因")
    private String reason;

    @ApiModelProperty(value = "商户id")
    private Long merchantId;

    /**
     * 退款总金额
     */
    private BigDecimal refundTotalAmount;

    /**
     * 退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 退款状态 1退款中 2退款成功 3退款失败
     */
    private Integer refundStatus;

    /**
     * 业务发生时间（退款成功/失败时间)
     */
    private LocalDateTime businessTime;

    /**
     * 第三方成功失败信息
     */
    private String thirdRemark;

    /**
     * 交易信息，json字符串，便于灵活记录支付平台返回信息
     refund_fee总退款金额
     trade_status交易状态
     gmt_refund交易退款时间
     */
    private String tradeInfo;

    /**
     * 记录创建用户（回调的话可能没有,此时默认0）
     */
    private Long userId;

    /**
     * 退款申请创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后修改时间
     */
    private LocalDateTime lastModifyTime;



    @ApiModelProperty(value = "订单支付主主订单号,用于支付方接口交互使用", hidden = true)
    private String thirdOrderNo;

    @ApiModelProperty(value = "支付平台返回的支付交易流水号trade_no", hidden = true)
    private String thirdTradeNo;

    @ApiModelProperty(value = "商户退款自定义单号", hidden = true)
    private String thirdRefundOrderNo;

    @ApiModelProperty(value = "三方退款流水号", hidden = true)
    private String thirdRefundTradeNo;

    @ApiModelProperty(value = "渠道来源（ 1：微信小程序:2：支付宝小程序:3：高德小程序:4：快电:5：新电途）")
    private Integer channel;

    @ApiModelProperty(value = "支付方式（ 1:支付宝 2:微信 3:个人余额 4：企业余额）")
    private Integer payType;

    @ApiModelProperty(value = "支付场景（0:余额支付 1:扫码支付 2:app支付 3:H5支付 4:公众号支付 5:小程序支付 6:信用分）")
    private Integer payTradeType;
}
